banded_to_dense Interface

public interface banded_to_dense

An interface to the banded to dense matrix conversion routines.


Module Procedures

private pure function banded_to_dense_dbl(m, kl, ku, a) result(x)

Converts a banded matrix to a dense matrix.

The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: m

The number of rows in the M-by-N dense matrix.

integer(kind=int32), intent(in) :: kl

The number of subdiagonals. Must be at least 0.

integer(kind=int32), intent(in) :: ku

The number of superdiagonals. Must be at least 0.

real(kind=real64), intent(in), dimension(:,:) :: a

The (KL+KU+1)-by-N banded matrix.

Return Value real(kind=real64), allocatable, dimension(:,:)

The M-by-N dense matrix.

private pure function banded_to_dense_cmplx(m, kl, ku, a) result(x)

Converts a banded matrix to a dense matrix.

The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: m

The M-by-N dense matrix.

integer(kind=int32), intent(in) :: kl

The number of subdiagonals. Must be at least 0.

integer(kind=int32), intent(in) :: ku

The number of superdiagonals. Must be at least 0.

complex(kind=real64), intent(in), dimension(:,:) :: a

The (KL+KU+1)-by-N banded matrix.

Return Value complex(kind=real64), allocatable, dimension(:,:)

The M-by-N dense matrix.